package com.boarsoft.boar.soagov.svc;

import java.util.List;

import com.boarsoft.boar.entity.LibInfo;
import com.boarsoft.boar.soagov.entity.LibSvc;
import com.boarsoft.common.dao.PagedResult;

public interface SvcLibBiz {

	/**
	 * 查询包含了指定svc的库包
	 * 
	 * @param svcId-库包id
	 * @param key-查询关键字
	 * @param orderBy-排序字段
	 * @param pageNo-页编号
	 * @param pageSize-页大小
	 * @return PagedResult<LibInfo>
	 */
	PagedResult<LibInfo> list(String svcId, String key, String orderBy, int pageNo, int pageSize);

	/**
	 * 查询包含了指定svc的所有lib
	 * 
	 * @param svcId
	 * @return List<LibInfo>
	 */
	List<LibInfo> list(String svcId);

	/**
	 * 查询包含了指定svc且状态为status的lib
	 * 
	 * @param svcId
	 * @return List<LibInfo>
	 */
	List<LibInfo> list(String svcId, short status);

	/**
	 * 获取给定id的LibSvc信息
	 * 
	 * @param id
	 * @return LibSvc
	 */
	LibSvc get(String id);

	/**
	 * 保存服务与库包或库包的关系
	 * 
	 * @param libId-库包id
	 * @param svcIds-服务id
	 */
	void add(String libId, String[] svcIds);

	/**
	 * 移除多条库包与服务的关系
	 * 
	 * @param libId
	 *            库包id
	 * @param svcIds
	 *            服务id
	 */
	void remove(String libId, String[] svcIds);

	/**
	 * 删除某个服务与所有库包的关系
	 * 
	 * @param svcId
	 */
	void delete(String svcId);

}
